contentsync / sketchcontentsync Goto Github PK
View Code? Open in Web Editor NEWSync sketch files with google docs.
Sync sketch files with google docs.
Hi and sorry, dumb question:
Where's the .sketchplugin file?
When I download it, there is no any .sketchplugin file :(
Opened up ContentSync today to an update. Updated to latest and it noticed that Symbols were not syncing.
All other content was syncing fine, but anything that was a Symbol would not sync.
I'm having an issue where text layers without the sync: designation are still changing. They are items I didn't set up in a excel doc but somehow are still changing.
Great project. This isn't so much an issue as encouragement:
I'm currently doing lot of work with Chinese/English designs, and you generally need to use different fonts (and font sizes, weights, spacing, line height, etc) to make typography look good with non-Latin character sets.
So whilst this plugin makes it easy to collate translations and add them to a sketch file, when working with non-Latin alphabets a designer will still need to do an amount of manual tweaking to optimise the design.
Is it possible to push all content to a spreadsheet, then change the keys in the spreadsheet instead of within the sketch file manually?
This is useful when we have a designer that is creating things quickly without thinking about the content, and allowing our copy writers to update this themselves.
Make it easy to translate a design with minimal effort. Using Google translation services, add the ability to translate a design.
Hi there, I've noticed that this sync system doesn't seem to work across multiple artboards.
For example if I have multiple 'sync:' fields on multiple artboards, and try to update them all, only the first artboard is sync'd. The rest remain as they were. Probably this has something to do with the recent Sketch update.
Hope it's a simple fix! And thanks again for all the great work you've put into this already. ๐
Hi, I have a enterprise account in Google and this don't permit publish google document if you aren't logged with the account of enterprise before. Yes it permit publish the docuement like other one, but only view for account of the enterprise.
Is there some way for do the sync if isn't the document public for everyone?
Thank in advance!
Currently, when the 'Include Layer Context Details' is toggled, it prevents multiple text layers from using the same values.
This is to add another settings option to 'Share Values Across Common Names'. This would allow a single entry on google documents to have multiple paths which would allow for having multiple layers share one entry.
Two artboards artboard1
and artboard2
both with a text layer named text
.
One row would be created on google documents with the path cell of value with multiple lines:
Object ID | Path | Key |
---|---|---|
objectID1 objectID2 |
artboard1.text artboard2.text |
Key |
Both of the text fields would always sync with the same data on a pull.
Two rows would be created on google documents with a single path per entry:
Object ID | Path | Key |
---|---|---|
objectID1 | artboard1.text | Key1 |
objectID2 | artboard2.text | Key2 |
Each text layer could have different values on a pull.
When clicking "Pull Content", button goes dark green into active click state, but then after a few seconds returns to normal state and does nothing.
I tried creating a new project and adding a excel doc from there...still no luck. Only seems to happen on this one Sketch file I have. All others are working properly.
Thoughts?
I have a problem with the plugin, I have a Google sheet with 765 rows, when I try to refresh the linked content in my web panel in contentsync.io does not detect the content keys. I've tried all possible formats and I think it's a problem with the number of rows the script can read. Could you tell me please how I can solve this problem?
Currently, if a project is created using an existing spreadsheet, the initial version list is blank. Instead, the versions should automatically be fetched when creating a project.
Whenever I try to sync from one of my Google spreadsheets, Sketch says it is unable to fetch the data. I can, however, sync from your test spreadsheet. I've checked and I'm using the same permissions as in the test spreadsheet.
Spreadsheet: https://docs.google.com/spreadsheets/d/1vrNNM5J60k-RKw8OII3S_UzceKFP0cCWUF0N8VCwVPU/edit#gid=0
More details found @ https://github.com/integration/sketchpacks-relay
The company I work for has a corporate Google Drive account and I'm wondering what kind of additional permissions need to be set in order to use sheets on there?
I noticed the shortcut to toggle this plugin is โ=. That's the default key in sketch to zoom in. Can you guys change it or give me guidance how I can overwrite it? Keyboard shortcuts in accessibility seem to no do the trick.
Thanks!
Hi @dbrody, you did an awesome plugin.
It would be great have the possibility to override symbols and push in Google Sheet their content so copywriter can update them.
Is it feasible?
Thank you so much
It would be awesome if allow to disable only specific font properties.
I used ContentSync most for responsive project, and the ability to use a single source (Google Sheet) for several target would be awesome. It could be done using the same layer name. In this way, when pulling a new version from Google Sheet it will update all layers with that name. It's important (for responsive projects) to don't consider the font size when pulling (because in mobile views font size are maybe smaller than the desktop ones). For this reason I suggest to let users choose what font properties disable (ex. font-size, color, all of them).
Do you think that it will be possible?
Thank you
Pushes seem to not work if text has a decimal point, for example a font size of 11.5.
Anyway to speed up the sync? Also crashes if you go between Windows. Not stable when multitasking.
Followup to #56 since this is more context to the actual issue.
It appears there is an issue when installing it with SketchRunner. I sent a message to SketchRunner and waiting for a reply.
With the "Enable Shortcuts" on, pulling from within Sketch opens the ContentSync app, but I still have to click what "version" to pull after I click a version within the SketchApp box.
Is it intended to automatically pull the version you select?
If not, have you considered having it automatically pull?
Hi there!
This is a quick note to remind you that Sketch 45 will include a plugin update system.
It would be awesome if you could add support to it (it's really easy!) before Sketch 45 comes out. Ideally, you should release an update for your plugin while we're still in Sketch 44, so your users will have a nice & easy experience when 45 is released.
For more details, please check http://sketchplugins.com/d/229-updating-plugins and http://developer.sketchapp.com/introduction/updating-plugins/
Thanks in advance!
There is currently no way to view content on the platform.
It would be great to be able to see the content and any name duplicates / clashes / etc on the platform's project page.
Two issues:
I was using the old version of the plugin, and it stoped syncing... It was working intermittently, but now won't sync at all. In my account, it registers that the sync has gone through (https://www.contentsync.io/simonesept/gmb_master_redacted_aug11_l10n_final-sketch/activity), but the copy in the file isn't updating. I noticed that my plugin had an update pending, so I updated it, which led to:
In sketch, the plugin pane on the far left where the upload/download buttons were is missing. The plugin is still showing as installed, and I've tried to Toggle it to make it appear, but it's not there.
Things I've tried:
Help please!
Sketch Username: simonesept
Sketch filename: GMB_MASTER_REDACTED_Aug28_L10n_final_V6.sketch
This could be more of a conflict between 2 plugins... but when I installed this plugin (via SketchRunner), Sketch crashed and I couldn't open any sketch files without crashing the program. Finally I figured out to go to Sketch > Plugins > Manage Plugins... and disabled some plugins until I found that disabling this plugin allowed me to open sketch files again.
I can send a list of my plugins if you think it might be a conflict.
As soon as I run the plugin on a slightly more complex Sketch-file, I have no longer the ability to copy/paste within the document. Duplicate (CMD+D) does work, but CMD+C/V/X doesn't do anything or has the app crashing.
Running the latest version of Sketch; 40.3
Currently there appears to be no way to deal with pulling content from the spreadsheet using the symbol overrides.
Hi,
Great project! I've got a feature request. It would be great if all the keys in the spreadsheet could be generated from the layers named "sync:" in a sketch file.
In my case I've made loads of screens in Swedish and would like to just generate a spreadsheet with all the keys and the Swedish version in one column. Then translate everything to English in another column, and sync to see that the design doesn't break.
Thanks,
Kimmy
Currently, all pushes / pulls are of the complete document.
This is to allow for pushing / pulling of just the selected page / layers.
If a Sketch file has many pages (on order of 15 or more) and the option to have a separate 'Google Sheet per Sketch Page' is toggled on, some pages may result with a rateLimitExceeded: Insufficient tokens for quota 'ReadGroup' and limit 'USER-100s' of service 'sheets.googleapis.com' for consumer 'project_number:167198436389'.
error.
If this issue occurs, than pages that experience the rateLimitExceeded
issue will not be synced. Other pages / sheets will be. So pushing / pulling may be partial.
We are actively working on a fix for this.
Currently, syncing symbol instances does behave as expected. Details below:
A text layer text
with a symbol subsymbol
within another symbol symbol
as represented by symbol
> subsymbol
> text
.
It should first look for a key name text[symbol][subsymbol]
. If this is not found, then it should look for text[symbol]
followed by text
. This is known as key qualifiers and it should try the most specific one first, followed by less and less specific ones.
Currently, it only looks for the most specific key text[symbol][subsymbol]
and does not look for the other qualifier variants.
This will cause issues on both pushing and pulling. It will cause blank fields on a push and cause improper values on a pull.
We are currently looking into this and expect to have a solution by Monday, April 24th.
There have been a couple of people asking for access to private sheets without the need to publish the sheet to web. While sheetsu does help, there may be alternatives that work better for other use cases.
If anybody has desire for such feature, could you please comment a bit about your use case and what your ideal solution would be?
Initial thoughts are to use Google OAuth.
Would there be a possibility in a future release to exclude certain text fields using a key e.g ~aTextfield... or turn it around, only text fields with a certain char / key will be pushed to google sheets?
Currently, content keys can only be complete values. A given item in the spreadsheet must be completely used within a text layer. It would be great to allow for partial values to be reused throughout a design.
Allowing variable names within content would help make content more easily dynamic. A example would be:
Key | Value |
---|---|
Name | ContentSync |
Welcome | Welcome to {Name} |
Using { ... }
would allow for replacing the value of another key into the content of a key.
In this example, the value for key Welcome
would be 'Welcome to ContentSync'.
Tried downloading and installing the plugin. There seems to be a .sketchplugin file missing from the .zip file. Renaming the file extension to .sketchplugin does not work either.
To improve the productivity and scalability of the designs we usually turn module assets into symbols, e.g. buttons, these can be used in different screens with different labels overriding the original... can the symbol layer name be the trigger to override the content instead of the actual text layer inside the symbol?
If there are many layers throughout a design that have the same name, they will all be treated as the same content. This is an issue when pushing / pulling as it will overwrite some of the content with data from other locations in the sketch.
One proposed solution is to use context to expand on a text field's name. So if I have a text layer named "Text" on an artboard name "Artboard" instead of the current key Text
it would be something such as Page.Artbord.Text
. If the layer is then within a Layer Group for example it would be: Page.Artboard.Layer Group.Text
.
Each object in Sketch does have a unique key. This could be added as an additional metadata column in the Google Spreadsheet either as an additional Column A.
Other potential solutions...
+ Download the [zip file](https://github.com/ideo/SketchContentSync.sketchplugin/releases/download/v0.3.1/SketchContentSync.sketchplugin.zip)
Hey @dbrody
Now that there is no need to add the "sync:" prefix to text layers I want to sync, I find when I do an initial Push on a new project I have many text layers that I don't need to sync (e.g. device keyboards, font icons, text design elements... etc.) I could "X" every text layer I don't want to push but, I'd have to do that again on any subsequent Push. So, either I need a way to tag text layers that I don't want to sync at all in my sketch file OR after the initial Push where I deselect each text layer I don't want to push, that somehow persists on subsequent Pushes. (I think I just confused myself)
Thanks
Really like the new symbols support, the only thing I'm missing is support for nested symbols.
For example:
On first push, the key order in the spreadsheet should follow the Sketch layer order from top to bottom.
Looks like the symbols API changed week ago when Sketch released version 41.
Symptoms: after updating Sketch, contentSync neither imports content into 'sync fields' within symbol instances, nor overrides content in symbols where it should. Normal (non-symbol) text fields update as expected.
Hopefully it's not a big fix. Let me know if you're not getting this behaviour with Sketch 41; it's possible I've made a mistake somewhere.
Hello,
I observed a bug when I use symbol. The plugin don't synchronise the text and generate a error. :)
P.S : Your plugin is very nice and useful.
27/11/16 19:46:02,329 Sketch[627]: Exception: TypeError: _layer.applyOverrides is not a function. (In '_layer.applyOverrides(mutableValues)', '_layer.applyOverrides' is undefined) 27/11/16 19:46:02,329 Google Sync (Sketch Plugin)[627]: TypeError: _layer.applyOverrides is not a function. (In '_layer.applyOverrides(mutableValues)', '_layer.applyOverrides' is undefined) line: 126 sourceURL: /Users/victorien/Library/Application Support/com.bohemiancoding.sketch3/Plugins/SketchContentSync.sketchplugin/Contents/Sketch/sync.google.cocoascript column: 26 stack: sync@/Users/victorien/Library/Application Support/com.bohemiancoding.sketch3/Plugins/SketchContentSync.sketchplugin/Contents/Sketch/sync.google.cocoascript:126:26 updateTextBoxes@/Users/victorien/Library/Application Support/com.bohemiancoding.sketch3/Plugins/SketchContentSync.sketchplugin/Contents/Sketch/sync.google.cocoascript:250:25 onRun@/Users/victorien/Library/Application Support/com.bohemiancoding.sketch3/Plugins/SketchContentSync.sketchplugin/Contents/Sketch/sync.google.cocoascript:219:24
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.