diff --git a/src/components/ScriptStarter.vue b/src/components/ScriptStarter.vue
new file mode 100644
index 0000000..e45bcc2
--- /dev/null
+++ b/src/components/ScriptStarter.vue
@@ -0,0 +1,191 @@
+
+
+
+
+
+
Start script tagging
+
+ Adds a 0-score placeholder for every family that supports the script and every
+ category below. Families with a wght axis get a variable placeholder at the wght
+ extremes, and at the wdth extremes too when they have wdth. Families that already
+ have any tagging for a category, for all scripts or for this script, are skipped.
+
+
+
Script
+
+
+
Categories
+
+
+
+
{{ families.length }} families support {{ script }}:
+ {{ plan.staticFamilies }} static, {{ plan.wghtFamilies }} with wght, {{ plan.wghtWdthFamilies }} with wght and wdth.
+
OK adds {{ plan.newTaggings }} placeholders ({{ plan.newRows }} CSV rows)
+ and skips {{ plan.skipped }} that already exist.
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/TagsByCategories.vue b/src/components/TagsByCategories.vue
index c88f6e2..d1a7551 100644
--- a/src/components/TagsByCategories.vue
+++ b/src/components/TagsByCategories.vue
@@ -31,6 +31,7 @@ const reverseTags = ref(false);
const variableOnly = ref(false);
const staticOnly = ref(false);
const scriptFilter = ref
([]);
+const placeholdersOnly = ref(false);
const sampleText = ref('');
// Every script any font supports, from the family metadata subsets
@@ -109,6 +110,9 @@ const filteredTaggings: ComputedRef = computed(() => {
const axes = axisFilter.value.split(",").map(a => a.trim().toLowerCase()).filter(Boolean);
filtered = filtered.filter(t => axes.every(a => t.font.axes.some(ax => ax.tag.toLowerCase() === a)));
}
+ if (placeholdersOnly.value) {
+ filtered = filtered.filter(t => t.placeholder);
+ }
if (scriptFilter.value.length > 0) {
// Keep fonts that support any of the chosen scripts
filtered = filtered.filter(t => scriptFilter.value.some(s => t.font.subsets.includes(s)));
@@ -140,6 +144,7 @@ const filteredTaggings: ComputedRef = computed(() => {
class="inline-block script-select">
+
diff --git a/src/main.ts b/src/main.ts
index 5b17c14..b2fcd3e 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -16,6 +16,7 @@ import Todo from "./components/Todo.vue";
import UntaggedFamilies from "./components/UntaggedFamilies.vue";
import UntaggedAxes from "./components/UntaggedAxes.vue";
import PlaceholderTagAdder from "./components/PlaceholderTagAdder.vue";
+import ScriptStarter from "./components/ScriptStarter.vue";
import vSelect from "vue-select";
Vue.component("v-select", vSelect);
@@ -32,6 +33,7 @@ Vue.component("untagged-families", UntaggedFamilies);
Vue.component("untagged-axes", UntaggedAxes);
Vue.component("sample-text", SampleText);
Vue.component("placeholder-tag-adder", PlaceholderTagAdder);
+Vue.component("script-starter", ScriptStarter);
var app = new Vue({
el: "#app",